Nuprl Lemma : ecl-precond-compatible 11,40

i:Id, ds:fpf(Id; x.Type), da:fpf(Knd; k.Type), A:ecl(dsda), snd:msg-spec(dsda),
upd:update-spec(dsda).
update-spec-decl(updds)
 msg-spec-loc-decl(sndida)
 ((fpf-dom(id-deq; mkid{ecl:ut2}; ds)))
 R-Feasible{i:l}
 R-Feasible(ecl-machine{ecl:ut2}(idsdaAsndupd))
 (a:Id, ds2:fpf(Id; x.Type), T:finite-prob-space, P:(decl-state(ds2)).
 ((fpf-dom(id-deq; mkid{ecl:ut2}; ds2)))
  fpf-compatible(Id; x.Type; id-deq; dsds2)
  (fpf-dom(Kind-deq; locl(a); da))
  (p-outcome(T) = fpf-ap(da; Kind-deq; locl(a))  Type)
  R-compat{i:l}
  R-compat(ecl-machine{ecl:ut2}(idsdaAsndupd); Rpre(ids2aTP))) 
latex


Definitionsp-outcome(p), fpf-ap(feqx), Kind-deq, locl(a), decl-state(ds), fpf-dom(eqxf), x.A(x), xt(x), ecl-machine{$ecl:ut2}(idsdaAsndupd), ecl-machine1{$ecl:ut2}(idsdaA), R-state-var-init(idsdaxTvkstr), R-state-var(idsdaxTkstr), Rinit(locTxv), Rframe(locTxL), Rall(Lx.R(x)), Reffect(locdskndTxf), inl x , ma-valtype(dak), fpf-join(eqfg), id-deq, fpf-single(xv), mkid{$x:ut2}, Knd, es realizer ind Rinit compseq tag def, es realizer ind Rframe compseq tag def, ecl-trans(x), ecl-trans-tuple{i:l}(dsda), spreadn(ua,b,c,d,e,f,g.v(a;b;c;d;e;f;g)), Rpre(locdsapP), Rplus(leftright), ecl-machine3(dsdaxTksasnd), ecl-machine2(idsdaxTksaupd), R-has-loc(Ri), es realizer ind Rplus compseq tag def, es realizer ind Rpre compseq tag def, left + right, Unit, P  Q, b, eq_id(ab), , sqequal(st), prop{i:l}, sq_type(T), guard(T), True, P  Q, x:AB(x), top, isect(Ax.B(x)), t  T, void, type List, Type, R-compat{i:l}(AB), f(a), if b then t else f fi , fpf-compatible(Aa.B(a); eqfg), x:AB(x), finite-prob-space, {x:AB(x)} , R-Feasible{i:l}(R), es realizer ind, A, False, msg-spec-loc-decl(sndida), s = t, l_all(LTx.P(x)), update-spec-decl(updds), b, update-spec(dsda), msg-spec(dsda), ecl(dsda), rec(x.A(x)), fpf(Aa.B(a)), x:A  B(x), Id, atom{$n:n}, P  Q, A c B, rationals, decl-type{i:l}(dsx), fpf-sub(Aa.B(a); eqfg), x(s), P  Q, EqDecider(T), T, es realizer ind Reffect compseq tag def, a < b, (x  l), x:AB(x), case b of inl(x) => s(x) | inr(y) => t(y), inr x , R-loc(R), Rds(R), Rda(R), R-base-domain(R), eq_bd(pq), R-frame-compat(AB), R-interface-compat(AB), Rplus?(x1), Rplus-left(x1), Rplus-right(x1), Rnone?(x1), Rframe?(x1), Rframe-x(x1), Rframe-L(x1), Raframe?(x1), Raframe-k(x1), Raframe-L(x1), Reffect-ds(x1), Rsframe?(x1), Rsframe-lnk(x1), Rsframe-tag(x1), Rsends-g(x1), Rsframe-L(x1), Rbframe?(x1), Rbframe-k(x1), Rbframe-L(x1), Rsends-ds(x1), Rpre?(x1), Rrframe?(x1), Rrframe-x(x1), Rpre-ds(x1), Rpre-a(x1), Rrframe-L(x1), Reffect-knd(x1), Reffect-T(x1), Rsends?(x1), Rsends-knd(x1), Rsends-l(x1), Rsends-dt(x1), Rsends-T(x1), (i = j), R-discrete_compat(AB), Reffect-discrete(A), Rinit-discrete(A), Reffect?(x1), Reffect-x(x1), Reffect-f(x1), Rinit?(x1), Rinit-x(x1), Rinit-v(x1), <ab>, fpf-cap(feqxz), update-spec-vars(upd), l[i], , A  B, ||as||, #$n, P  Q, IdLnk, list_accum(x,a.f(x;a); yl), [], x,yt(x;y), qeq(rs), tt, equiv_rel(Tx,y.E(x;y)), b-union(AB), int_nzero, , let x,y = A in B(x;y), quotient(Ax,y.B(x;y)), t.1, product-deq(ABab), t.2, ma-state(ds), remove-repeats(eqL), idlnk-deq, msg-spec-links(snd), R-lnk-tags(dsdaltgsksg), suptype(ST), subtype(ST), rcv(l,tg), lnk-decl(ldt), isrcv_locl{isrcv_locl_compseq_tag_def:ObjectId}(a), Rsends(dskndTldtg), ecl-m3(asndxl), es-dt(lda), es realizer ind Rsends compseq tag def, ecl-tags(lsnd), source(l), Rsframe(lnktagL), es realizer ind Rsframe compseq tag def
Lemmaslsrc wf, Rsframe wf, false wf, lnk-decl-compatible-single, es-dt wf, lnk-decl wf, rcv wf, es-dt-cap, fpf-cap-void-subtype, Rsends wf, ecl-m3 wf, ecl-tags wf, R-lnk-tags wf, msg-spec-links wf, idlnk-deq wf, remove-repeats wf, decl-state-subtype, fpf-single-dom, or functionality wrt iff, fpf-cap-join-subtype, ifthenelse wf, list accum wf, product-deq wf, pi2 wf, pi1 wf, l member wf, fpf-compatible-single-iff, ma-valtype wf, fpf-join wf, decl-type wf, btrue wf, qeq wf2, int nzero wf, b-union wf, quotient wf, rationals wf, IdLnk wf, fpf-join-dom2, R-state-var-compat-unequal-loc, true wf, squash wf, fpf-compatible-single, select wf, length wf1, nat wf, R-state-var wf, update-spec-vars wf, top wf, Knd sq, fpf-empty-compatible-left, fpf-compatible-single2, fpf-compatible-symmetry, assert-eq-knd, fpf-compatible-singles, fpf-compatible-join2, Rpre wf, subtype rel self, eqof eq btrue, fpf-cap-single, fpf-join-cap-sq, fpf-sub weakening, fpf-single wf, fpf-sub-join-left2, subtype-fpf-cap-top, fpf-cap wf, subtype rel dep function, Reffect wf, R-compat-Rall2, R-compat-Rplus-sq, R-compat-symmetry, Id sq, bool wf, eq id wf, assert wf, not wf, bnot wf, assert-eq-id, not functionality wrt iff, assert of bnot, iff transitivity, eqff to assert, eqtt to assert, R-compat-disjoint, ecl-trans-tuple wf, ecl-trans wf, ecl-machine-loc, ecl-disjoint-compatible, Id wf, fpf wf, Knd wf, ecl wf, msg-spec wf, update-spec wf, update-spec-decl wf, msg-spec-loc-decl wf, fpf-trivial-subtype-top, id-deq wf, fpf-dom wf, ecl-machine wf, R-Feasible wf, finite-prob-space wf, decl-state wf, fpf-compatible wf, locl wf, Kind-deq wf, fpf-ap wf, p-outcome wf

origin